افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش دوم)

تبلیغات در سایت ما

شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی

پشتيباني آنلاين
پشتيباني آنلاين
آمار
آمار مطالب
  • کل مطالب : 72
  • کل نظرات : 1
  • آمار کاربران
  • افراد آنلاین : 1
  • تعداد اعضا : 3
  • آمار بازدید
  • بازدید امروز :
  • بازدید دیروز :
  • ورودی امروز گوگل : 0
  • ورودی گوگل دیروز : 0
  • آي پي امروز : 0
  • آي پي ديروز : 0
  • بازدید هفته :
  • بازدید ماه :
  • بازدید سال :
  • بازدید کلی :
  • اطلاعات شما
  • آی پی : 18.225.98.111
  • مرورگر :
  • سیستم عامل :
  • امروز :
  • درباره ما
    شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی
    به وبلاگ من خوش آمدید امیدوارم لحظات خوبی رو در این وب داشته باشین برای همکاری بیشتر می تونین به ایمیل بنده پیغام بدین
    خبرنامه
    براي اطلاع از آپدیت شدن سایت در خبرنامه سایت عضو شويد تا جديدترين مطالب به ايميل شما ارسال شود



    امکانات جانبی

    افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش دوم)

    • استفاده از stored procedure : سيستم های مديريت بانك های اطلاعاتی رابطه ای نظير SQL server پيچيدگی های خاص خود را دارند . سيستم های فوق،  قادر به انجام كارهای متنوعی هستند  كه  با استفاده از  ASP.NET  نمی توان آنها را انجام داد . بكارگيری اين نوع پتانسيل ها می تواند تاثيرات گسترده ای را بر روی برنامه های وب به دنبال داشته باشد . به عنوان نمونه ، استفاده از stored procedure در مقابل Query های توليد شده پويا می تواند تاثير غيرقابل انكاری  بر روی كارآيی برنامه های وب داشته باشد چراكه  stored procedure را می توان برای استفاده آتی ترجمه و بهينه سازی كرد . تاثير استفاده از stored procedure در مواردی كه لازم است چندين عمليات مرتبط به هم در يك لحظه انجام شود ، بسيار مشهود و ملموس می باشد .

    • استفاده از پروفايلينگ و ايندكس : تعريف ايندكس ها بگونه ای كه با نوع جستجو و خواسته های  مورد نياز در يك سيستم مطابقت نمايد ، می تواند نتايج مورد نظر را با سرعت قابل قبولی در اختيار كاربران قرار دهد . برای بهينه سازی بی عيب ايندكس ها در يك بانك اطلاعاتی لازم است كه آنها را با استفاده از يك  ابزار profiling ارزيابی كرد ( نظير SQL Server Profiler ) . اين نوع ابزارها فعاليت بانك اطلاعاتی را در يك لاگ خاص ثبت می نمايند و در ادامه می توان آن را بررسی ، آناليز و بر اساس نتايج بدست آمده در ايندكس ها تجديد نظر نمود . ابزارهای فوق می توانند مسائلی نظير اجرای كند query را شناسائی و حتی مجموعه ای جديد از ايندكس ها را كه دارای كارآئی بمراتب بهتری می باشند ، پيشنهاد  دهند . برای پروفايل بهتر بانك اطلاعاتی لازم است كه يك لود فرضی را بر روی برنامه شبيه سازی كرد.

    • بازيابی صرفا" اطلاعات  مورد نياز : يكی از ساده ترين روش هائی كه باعث بهبود هر نوع كد بانك اطلاعاتی می گردد ، كاهش حجم اطلاعات بازيابی شده از بانك اطلاعاتی است . اين كار باعث كاهش لود شبكه ، مدت زمان لازم برای باز شدن اتصال و حجم نهائی صفحه می گردد . به عنوان نمونه با استفاده از فيلترينگ مناسب در query ( نظير استفاده از تاريخ ) و بازيابی صرفا" فيلدهای ضروری ، می توان حجم داده بازيابی شده را حتی المقدور كاهش داد .

    • استفاده از connection pooling : در يك برنامه وب عمومی ، سيستم مديريت بانك اطلاعاتی درخواست های بيشماری را از طرف سرويس گيرندگان برای صفحات وب متعدد دريافت می نمايد . معمولا" اين اتصالات برای مدت زمان كوتاهی  فعال و ايجاد آنها  يكی از مراحل وقت گير در زمان پياده سازی است . در صورتی كه هر صفحه وب از connection string مشابه استفاده نمايد ، بانك های اطلاعاتی نظير SQL server قادر به استفاده از connection pooling  تعبيه شده در خود برای استفاده مجدد از يك اتصال برای بيش از يك سرويس گيرنده متوالی می باشند . بدين ترتيب امكان استفاده از  connection string به دفعات فراهم می گردد. اين كار بطرز چشمگيری باعث بهبود سرعت می گردد . در چنين مواردی می توان از فايل web.config برای ذخيره  connection string استفاده تا امكان بكارگيری آنها در صفحات متعدد يك برنامه وب فراهم گردد.

    • استفاده از date binding : سريعترين روش بازيابی و نمايش اطلاعات از يك بانك اطلاعاتی  ، استفاده از يك DataReader و يا Dataset و نسبت دهی مستقيم آن به يك كنترل داده است . رويكرد فوق ممكن است به عمليات بيشتری جهت استفاده از تمپليت های سفارشی نياز داشته باشد ولی اين وضعيت بمراتب بهتر از حالتی است كه بطور دستی بين سطرها ( ركوردها ) حركت و آنها را در صفحه مورد نظر قرار داد. 

    • استفاده از caching : در صورتی كه مجموعه ای خاص از داده متناوبا" درخواست و بندرت تغيير می يابد ، می توان آنها را جهت استفاده آتی cache نمود . با استفاده از سيستم caching ،  در اولين مرتبه ای كه يك سرويس گيرنده درخواست اطلاعات را می نمايد ، اطلاعات درخواستی از بانك اطلاعاتی خوانده شده و در حافظه موقت قرار می گيرند . بدين ترتيب امكان استفاده مستقيم از اطلاعات cache شده  بدون ضرورت دستيابی به بانك اطلاعاتی فراهم می گردد .  در بخش های بعدی به بررسی Output caching و  data caching خواهيم پرداخت .

    session state
    session state يكی از بزرگترين محدوديت های تاثير گذار در  خصوص كارآئی  برنامه های نوشته شده با استفاده از ASP كلاسيك است . با اين كه در ASP.NET ويژگی های جديدی به منظور بهبود كاركرد session state ارائه شده است  ولی همچنان لازم است كه از آن با دقت استفاده گردد .
    اگر صرفا" ID يك خريدار كالا را در session state ذخيره كرده باشيم، درگير مسائلی خاص نخواهيم شد . در چنين مواردی می توان يك سبد خريد كالای الكترونيكی را با ذخيره ليستی از محصولات انتخابی توسط خريدار ايجاد نمود . در صورتی كه قصد ذخيره حجم بالائی از اطلاعات نظير يك Dataset  را داشته باشيم ، می بايست در اين رابطه دقت و تاثير آن را بر روی موفقيت برنامه بررسی كرد . به عنوان نمونه ، در صورتی كه هر  session فضائی به ميزان يك مگابايت را استفاده نمايد ، يكصد session همزمان باعث استفاده 100 مگابايت از حافظه خواهد شد .
    برای حل اين نوع از مشكلات ، در زمان طراحی می توان بر اساس يكی از دو گزينه های زير تصميم گيری نمود :

    • ذخيره تمامی اطلاعات مورد نياز در يك ركورد بانك اطلاعاتی و ذخيره ID  ركورد مورد نظر در يك session .  روش فوق باعث صرفه جوئی در مصرف حافظه می گردد ولی سرعت برنامه را كاهش خواهد داد ( با توجه به فرآيند دستيابی به بانك اطلاعاتی كه يكی از عناصر مهم و تاثيرگذار در خصوص كارآئی برنامه های وب است ) .

    • به عنوان يك راه حل بهتر می توان اطلاعات مورد نظر را در يك ركورد بانك اطلاعاتی ذخيره و در ادامه برخی از اطلاعات را در حافظه cache نمود . بدين ترتيب ، امكان بازيابی اطلاعات با سرعت بيشتری فراهم می گردد . در بخش های بعدی با data caching بيشتر آشنا خواهيم شد .

    بهترين روش و يا گزينه برای ذخيره session ، استفاده از روش  in-process است كه به صورت پيش فرض در نظر گرفته می شود . برای ذخيره session می توان از روش های ديگری نظير يك بانك اطلاعاتی SQL نيز استفاده نمود . استفاده از روش فوق پردازش های بيشتری را به سيستم تحميل و صرفا"  در مواردی كه وب سايت مورد نظر در يك web farm به همراه چندين سرويس دهنده هاست شده باشد ، توصيه می گردد .

    محور دوم : تست برنامه قبل از عملياتی شدن آن و يا پروفايلنگ ( Profiling )
    برای قضاوت در خصوص  تلاش های انجام شده در ارتباط با بهبود كارآئی يك برنامه وب ، می بايست  قادر به سنجش كارآئی آن در عمل باشيم .  در مواردی كه كارآئی يك برنامه كند و  نااميد كننده است  ، می بايست بر اساس اطلاعات كافی اقدام به شناسائی  گره ها و عوامل تاثير گذار بر روی كارآئی برنامه های وب نمائيم تا از اين رهگذر بتوانيم مشكل و يا مشكلات را برطرف و يك برنامه وب كارآ را آماده استفاده عملياتی و نهائی نمائيم .
    در بخش سوم  به بررسی امكانات و ابزارهای موجود برای تست برنامه های وب خواهيم پرداخت .


    بخش نظرات این مطلب


    برای دیدن نظرات بیشتر روی شماره صفحات در زیر کلیک کنید

    نام
    آدرس ایمیل
    وب سایت/بلاگ
    :) :( ;) :D
    ;)) :X :? :P
    :* =(( :O };-
    :B /:) =DD :S
    -) :-(( :-| :-))
    نظر خصوصی

     کد را وارد نمایید:

    آپلود عکس دلخواه:







    تبلیغات
    نویسندگان
    ورود کاربران
    نام کاربری
    رمز عبور

    » رمز عبور را فراموش کردم ؟
    عضويت سريع
    نام کاربری
    رمز عبور
    تکرار رمز
    ایمیل
    کد تصویری
    تبادل لینک هوشمند

      تبادل لینک هوشمند
      برای تبادل لینک 

       ابتدا ما را با عنوان

      هاستینگ رایگان

      و آدرس

       http://www.iran2.net

      لینک نمایید سپس مشخصات

       لینک خود را در زیر نوشته

       . در صورت وجود لینک ما

      در سایت شما لینکتان

      به طور خودکار در سایت ما

      قرار میگیرد.






    آخرین نظرات کاربران
    Moohammad - سلام دوست گلم خوبی؟

    وبلاگت خیلی خوبه. به منم سر بزن خوشحال میشم نظر بدی

    تبادل لینک هم تو سایتم هست



    - 1393/9/15
    عنوان آگهی شما

    توضیحات آگهی در حدود 2 خط. ماهینه فقط 10 هزار تومان

    عنوان آگهی شما

    توضیحات آگهی در حدود 2 خط. ماهینه فقط 10 هزار تومان

    به شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی امتیاز دهید